package com.buli.blmall.admin.utils;

import cn.hutool.crypto.digest.BCrypt;

/**
 * Bcrypt工具类
 * bcrypt加密算法
 * 每次哈希密码时都会生成一个唯一的盐值，并将其与密码一起哈希 每次加密后的密文都不一样
 * Bcrypt生成的密文是60位的。而MD5的是32位的。
 * MD5和BCrypt比较流行。相对来说，BCrypt比MD5更安全，但加密更慢。
 * @author xiang.gao
 * @date 2024/12/18 17:07
 */
public class BCryptUtil {


    public static String hashpw(String plaintext) {
        return BCrypt.hashpw(plaintext, BCrypt.gensalt(8));
    }

    public static void main(String[] args) {
        String password = "admin";
        String hashpw = BCrypt.hashpw(password);
        //$2a$10$ifTUEBvj84p.tuyuNOfWwO8J1Pgvy.OrgDmE4661/.imFFeVisNoO
        //$2a$10$q/7jjT1Az1P/WS9VLSmb7eyTU8z5Qy6Ja3w8/.FVxRTzdY/LDnwoy
        //$2a$10$Wbtjd8HEOHjoluYWi7Ww5OE1IVGGCanc1MgMGOCp40BSMkuMzKBwW
        //$2a$10$HYzJCCuziTDBA66ywSdVguUh8cWqm2xOVFOiCv6ag8jhY/CwJ1476
        System.out.println(BCrypt.checkpw("$2a$10$012Kx2ba5jzqr9gLlG4MX.bnQJTD9UWqF57XDo2N3.fPtLne02u/m", "$2a$10$012Kx2ba5jzqr9gLlG4MX.bnQJTD9UWqF57XDo2N3.fPtLne02u/m"));
        System.out.println(BCrypt.checkpw(password, "$2a$10$012Kx2ba5jzqr9gLlG4MX.bnQJTD9UWqF57XDo2N3.fPtLne02u/m"));

    }

}
